package com.sumer.io.test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 通过字节流实现复制文件
 */
public class ByteStreamCopyFile {

    public static void main(String[] args) throws IOException {
        // 1.读取文件
        FileInputStream in = new FileInputStream("D:\\a.jpg");
        FileOutputStream out = new FileOutputStream("D:\\b.jpg");
        byte[] data = new byte[1024];
        int count = 0;
        while ((count = in.read(data)) != -1){
            // out.write(data);
            // 注意  这里使用out.write(data)这种写法可能出现问题，
            // 因为比如说一次读取5个字节的数据，文件一共8个字节，
            // 第一次读取data{'a','b','c','d','e'}
            // 第二次读取三个 fgh，存在数组的前三位，后面的数据不变，就成了
            // data{'f','g','h','d','e'},造成了多写了一下数据
            out.write(data,0, count);
        }
        out.close();
        in.close();
        System.out.println("复制完成");
    }
}
